package cn.ms.doctor.Mapper;

import cn.ms.doctor.Entity.User;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @Entity cn.ms.doctor.Entity.User
 */
public interface UserMapper {

    /**
     * 获取登陆数据根据账号密码角色
     * @param params
     * @return
     */
    User getUserByAccountAndPasswordAndRole(@Param("params") Map<String, Object> params);

    /**
     * 修改用户名根据ID
     * @param userId
     * @param userName
     * @return
     */
    Boolean updateUserNameByUserId(@Param("userId") Integer userId,@Param("userName") String userName);

    /**
     * 修改用户密码根据ID
     * @param userId
     * @param newPassword
     * @return
     */
    boolean updateUserPasswordByUserId(@Param("userId") Integer userId,@Param("newPassword") String newPassword);

    /**
     * 获取所有用户数据
     * @param params
     * @return
     */
    @MapKey("userId")
    List<Map<String,Object>> getUsersByUserIdOrUserNameAndDeptId(Map<String,Object> params);

    /**
     * 修改用户的科室或者角色或者姓名
     * @param params
     * @return
     */
    boolean updateRoleOrDeptOrName(Map<String, Object> params);

    /**
     * 根据ID和账号删除用户
     * @param params
     * @return
     */
    boolean deleteUserByUserIdAndAccount(Map<String, Object> params);

    /**
     * 添加用户
     * @param params
     * @return
     */
    boolean addUser(Map<String, Object> params);

    /**
     * 根据科室ID获取职工数量
     * @param deptId
     * @return
     */
    Integer getUserCountByDeptId(Integer deptId);

    /**
     * 获取用户名根据ID
     * @param userId
     * @return
     */
    String getUserNameByUserId(Integer userId);
}




